var baseURL = "/";
//登录token
var token = localStorage.getItem("token");
if(token == 'null'){
    parent.location.href = baseURL + 'login.html';
}
//获取链接url传参
function GetQueryString(name)
{
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}
//jquery全局配置
$.ajaxSetup({
    dataType: "json",
    cache: false,
    headers: {
        "token": token
    },
    complete: function(xhr) {
        //token过期，则跳转到登录页面
        if(xhr.responseJSON.code == 'tokenError'){
            parent.location.href = baseURL + 'login.html';
        }
    }
});

//权限判断
function hasPermission(permission) {
    console.log(permission);
    console.log(window.parent.permissions);
    if (window.parent.permissions.indexOf(permission) > -1) {
        return true;
    } else {
        return false;
    }
}

/** 消息状态码 */
web_status = {
    SUCCESS: 0,
    FAIL: 500
};

/** 弹窗状态码 */
modal_status = {
    SUCCESS: "success",
    FAIL: "error",
    WARNING: "warning"
};

/** 返回结果处理 */
function simpleSuccess(result) {
    if (result.code == web_status.SUCCESS) {
        $.modalMsg(result.msg, modal_status.SUCCESS);
        //$.parentReload();
        //$.refreshTable();
    } else {
        $.modalAlert(result.msg, modal_status.FAIL);
    }
}

/** 操作结果处理 */
function handleSuccess(result) {
    if (result.code == web_status.SUCCESS) {
        parent.layer.msg("新增成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
            $.parentReload();
        });
    } else {
        $.modalAlert(result.msg, modal_status.FAIL);
    }
}

// 初始bootstrap table数据
$.initTable = function (obj, _columns, _url) {
    obj.bootstrapTable({
        method: 'get',                // 请求方式（*）
        dataType: "json",             // 返回格式（*）
        url: _url,                    // 请求后台的URL（*）
        pagination: true,             // 是否显示分页（*）
        pageSize: 10,                 // 每页的记录行数（*）
        pageNumber: 1,                // 初始化加载第一页，默认第一页
        pageList: [10, 25, 50],       // 可供选择的每页的行数（*）
        search: false,                 // 是否显示搜索框功能
        singleSelect: false,          // 是否禁止多选
        iconSize: 'outline',          // 图标大小：undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
        toolbar: '#toolbar',          // 指定工作栏
        sidePagination: "server",     // 启用服务端分页
        showRefresh: true,            // 是否显示刷新按钮
        showColumns: true,            // 是否显示隐藏某列下拉框
        showToggle: true,             // 是否显示详细视图和列表视图的切换按钮
        cache: false,                 // 是否使用缓存
        showExport: true,             // 是否支持导出文件
        queryParams: function(params) {
            return {
                // 传递参数查询参数
                size:       params.limit,
                current:        params.offset / params.limit + 1
            };
        },
        columns: _columns
    });
}
// 初始bootstrap table 自定义参数
$.initTableParams = function (obj, _columns, _url, _queryParams) {
    obj.bootstrapTable({
        method: 'get',                // 请求方式（*）
        dataType: "json",             // 返回格式（*）
        url: _url,                    // 请求后台的URL（*）
        pagination: true,             // 是否显示分页（*）
        pageSize: 10,                 // 每页的记录行数（*）
        pageNumber: 1,                // 初始化加载第一页，默认第一页
        pageList: [10, 25, 50],       // 可供选择的每页的行数（*）
        search: false,                 // 是否显示搜索框功能
        singleSelect: false,          // 是否禁止多选
        iconSize: 'outline',          // 图标大小：undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
        toolbar: '#toolbar',     // 指定工作栏
        sidePagination: "server",     // 启用服务端分页
        showRefresh: true,            // 是否显示刷新按钮
        showColumns: true,            // 是否显示隐藏某列下拉框
        showToggle: true,             // 是否显示详细视图和列表视图的切换按钮
        cache: false,                 // 是否使用缓存
        showExport: true,             // 是否支持导出文件
        queryParams: _queryParams,
        columns: _columns
    });
}
//初始化表格树，并展开树
$.initTreeTable = function (obj, _id, _parentId, _columns, _url) {
    $.initTreeTable(obj, _id, _parentId, _columns, _url, true);
}
//初始化表格树，_expandAll true展开 false 不展开
$.initTreeTable = function (obj, _id, _parentId, _columns, _url, _expandAll) {
    obj.bootstrapTreeTable({
        code : _id,                   // 用于设置父子关系
        parentCode : _parentId,       // 用于设置父子关系
        type: 'get',                  // 请求方式（*）
        url: _url,                    // 请求后台的URL（*）
        ajaxParams : {},              // 请求数据的ajax的data属性
        expandColumn : '0',           // 在哪一列上面显示展开按钮
        striped : false,              // 是否各行渐变色
        bordered : true,              // 是否显示边框
        expandAll : _expandAll,       // 是否全部展开
        showRefresh: true,            // 是否显示刷新按钮
        columns: _columns
    });
}
// 刷新bootstrap table数据
$.refreshTable = function () {
    $('.bootstrap-table').bootstrapTable('refresh');
}
// 获取bootstrap table选中项
$.getSelections = function (_id) {
    return $.map($('.bootstrap-table').bootstrapTable('getSelections'), function (row) {
        return row[_id];
    });
}
// 获取选中复选框项
$.getCheckeds = function (_name) {
    var checkeds = "";
    $('input:checkbox[name="' + _name + '"]:checked').each(function(i) {
        if (0 == i) {
            checkeds = $(this).val();
        } else {
            checkeds += ("," + $(this).val());
        }
    });
    return checkeds;
}
// 获取选中复选框项
$.getSelects = function (_name) {
    var selects = "";
    $('#' + _name + ' option:selected').each(function (i) {
        if (0 == i) {
            selects = $(this).val();
        } else {
            selects += ("," + $(this).val());
        }
    });
    return selects;
}
// 复选框事件绑定
if ($.fn.select2 !== undefined) {
    $("select.form-control:not(.noselect2)").each(function () {
        $(this).select2().on("change", function () {
            $(this).valid();
        })
    })
}

// 刷新父窗体
$.parentReload = function () {
    parent.location.reload();
    return false;
}

Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "H+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

function parentLayerClose() {
    var index=parent.layer.getFrameIndex(window.name);//获取layer的索引
    parent.layer.close(index);
}

/** 弹出层指定宽度 */
function layer_show(title, url, w, h) {
    if (title == null || title == '') {
        title = false;
    };
    if (url == null || url == '') {
        url = "404.html";
    };
    if (w == null || w == '') {
        w = 800;
    };
    if (h == null || h == '') {
        h = ($(window).height() - 50);
    };
    layer.open({
        type: 2,
        area: [w + 'px', h + 'px'],
        fix: false,
        //不固定
        maxmin: true,
        shade: 0.4,
        title: title,
        content: url
    });
}

/** 弹出层自动宽高 */
function layer_showAuto(title, url) {
    layer_show(title, url, '', '');
}

// 消息窗体
$.modalMsg = function(content, type) {
    if (type != undefined) {
        var icon = "";
        if (type == modal_status.WARNING) {
            icon = 0;
        }
        else if (type == modal_status.SUCCESS) {
            icon = 1;
        }
        else if (type == modal_status.FAIL) {
            icon = 2;
        }
        layer.msg(content, { icon: icon, time: 2000, shift: 0 });
        $(".layui-layer-msg").find('i.' + icon).parents('.layui-layer-msg').addClass('layui-layer-msg-' + type);
    } else {
        layer.msg(content);
    }
}
// 弹出窗体
$.modalAlert = function(content, type) {
    var icon = "";
    if (type == modal_status.WARNING) {
        icon = 0;
    } else if (type == modal_status.SUCCESS) {
        icon = 1;
    } else if (type == modal_status.FAIL) {
        icon = 2;
    } else {
        icon = 3;
    }
    layer.alert(content, {
        icon: icon,
        title: "系统提示",
        btn: ['确认'],
        btnclass: ['btn btn-primary'],
    });
}
// 确认窗体
$.modalConfirm = function (content, callBack) {
    layer.confirm(content, {
        icon: 3,
        title: "系统提示",
        btn: ['确认', '取消'],
        btnclass: ['btn btn-primary', 'btn btn-danger'],
    }, function () {
        callBack(true);
    }, function () {
        // callBack(false)
    });
}
// 关闭窗体
$.modalClose = function () {
    var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    var $IsdialogClose = top.$("#layui-layer" + index).find('.layui-layer-btn').find("#IsdialogClose");
    var IsClose = $IsdialogClose.is(":checked");
    if ($IsdialogClose.length == 0) {
        IsClose = true;
    }
    if (IsClose) {
        parent.layer.close(index);
    } else {
        parent.location.reload();
    }
}